// 为什么javaScript代码会存在栈溢出？
// var a=2
// function add(b,c){
//     return a+c
// }
// function addAll(b,c){
//     var d=10
//     var reslt= add(b,c)
//     return a+reslt +d
// }
// addAll(3,6)

// function foo(){
//     for(var i=0;i<7;i++){
//     }
//     console.log(i);//7
// }
// foo()

// let x= 5 
// const y= 6//const声明的变量不可以更改（常量）
// x=7
// y=9//报错
// console.log(x,y)

function varTest(){
    var x= 1
    if(1){
        //var x= 2
        let x = 2
        console.log(x)//2
    }
     //console.log(x) //1
    console.log(x)//2
   
}
varTest()


// AO：{
//     变量环境：             词法环境：
//      a:undefiend 1         //b:undefiend  3
//      c:undefiend   4         d:undefiend  5//

//                                   // b:undefined  2//
// }
// function foo() {
//   var a = 1
//   let b = 2
//   {
//     let b = 3
//     var c = 4
//     let d = 5
//     a=19
//     console.log(a);//1
//     console.log(b);//3
//   }
//   console.log(b);//2
//   console.log(c);//4
//   //console.log(d);//报错
//   console.log(a)
// }
// foo()

// // var a=1;
// // let a=2
// //  console.log(a) //报错 赋值冲突

//  let a=1;
// {let a=2}
//  console.log(a) //1

 // let name='家俊'
 // {
 //    console.log(name)；//暂时性死区
 //    let name='袁静'
 // }